from kiwi.core.base import Model
import matplotlib.pyplot as plt
#*****************************************************************************
# PURPOSE: 
# USAGE:   
# PASSED ARGS:  
# RETURN ARGS: 
# Error - Fail Error Message
#*****************************************************************************
class Plotter( Model ):
	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def __init__( self, name = "Plotter", type = "Plotter" ):
		Model.__init__( self, name, type )
		self.clearFig()
	
	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def createPlot( **params ):
		pass	

	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def setFigs( self, figs ):
		self.setParam("FIGS", figs )

	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def getFigs( self ):
		return self.getParam("FIGS")

	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def clearFig( self ):
		self.setParam("FIGS", [] )
		
	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************
	def saveFigs( self, outputfile, index = None ):
		if not self.params["FIG"]:
			return 0
		savedfigs = { "FIGS" : self.params["FIG"] }
		if index and index < len( self.params["FIG"]):
			savedfigs = { "FIGS" : [ self.params["FIG"][ index ] ] }
		self.save( outputfile, savedfigs  )
	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************			
	def loadFigs( self, inputfile ):
		self.load( inputfile, extra = True )

	#*****************************************************************************
	# PURPOSE: 
	# USAGE:   
	# PASSED ARGS:  
	# RETURN ARGS: 
	# Error - Fail Error Message
	#*****************************************************************************					
	def Plot2DLine( x, y );
		plt.plot( x, y )
		plt.show()
		
		